﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CSP.Bll.ObjectBlls;
using CSP.Bll.IObjectBlls;

namespace CSP.Bll
{
    public class CSPBllFactory : IDisposable
    {




        private CSPBllFactory()
        {

        }
        /// <summary>
        /// 获取工厂实例，并指定是否开启事务
        /// </summary>
        /// <returns></returns>
        public static CSPBllFactory GetInstance()
        {
            var factory = new CSPBllFactory();
            return factory;
        }

        public IUserCreditBll GetUserCreditBll()
        {
            return new UserCreditBll();
        }

        public ICreditLineBll GetCreditLineBll()
        {
            return new CreditLineBll();
        }

        public IUserInfoBll GetUserInfoBll()
        {
            return new UserInfoBll();
        }

        public IAuthenticationBll GetAuthenticationBll()
        {
            return new AuthenticationBll();
        }

        public IDomainTypeBll GetDomainTypeBll()
        {
            return new DomainTypeBll();
        }

        public IServiceTypeBll GetServiceTypeBll()
        {
            return new ServiceTypeBll();
        }

        public IServiceAreaBll GetServiceAreaBll()
        {
            return new ServiceAreaBll();
        }


        public IServiceAssetBll GetServiceAssetBll()
        {
            return new ServiceAssetBll();
        }

        public IContactWayBll GetContactWayBll()
        {
            return new ContactWayBll();
        }

        public IAddressBll GetAddressBll()
        {
            return new AddressBll();
        }

        public IServiceInfoBll GetServiceInfoBll()
        {
            return new ServiceInfoBll();
        }

        public IPriceUnitBll GetPriceUnitBll()
        {
            return new PriceUnitBll();
        }

        public IClassTypeBll GetClassTypeBll()
        {
            return new ClassTypeBll();
        }

        public IRateStatisticBll GetRateStatisticBll()
        {
            return new RateStatisticBll();
        }

        public IRecommendBll GetRecommendBll() 
        {
            return new RecommendBll();    
        }

        public IOrderBll GetOrderBll()
        {
            return new OrderBll();
        }

        public ICollectBusinessInfoBll GetCollectBusinessInfoBll()
        {
            return new CollectBusinessInfoBll();
        }

        public void Dispose()
        {
            //To Do
            //throw new NotImplementedException();
        }
    }
}
